const storage = {
  /**
   * @description 存储数据到 localStorage
   * @param {String} key 存储的键
   * @param {Any} value 存储的值（会自动序列化为 JSON）
   */
  set(key, value) {
    if (!key) return;
    try {
      let resultValue = value;
      if (typeof value === 'object' || Array.isArray(value)) {
        // resultValue = value.toString();
        resultValue = JSON.stringify(value);
      }
       // 将值转换为 JSON 字符串
      localStorage.setItem(key, resultValue);
    } catch (error) {
      console.error(`设置 localStorage 错误: ${error}`);
    }
  },

  /**
   * @description 从 localStorage 获取数据
   * @param {String} key 要获取的键
   * @returns {Any} 返回值（自动反序列化为对象/数组等）
   */
  get(key) {
    if (!key) return null;
    try {
      const value = localStorage.getItem(key);
      return value ? JSON.parse(value) : null; // 反序列化 JSON 字符串
    } catch (error) {
      console.error(`获取 localStorage 数据错误: ${error}`);
      return null;
    }
  },

  /**
   * @description 从 localStorage 移除数据
   * @param {String} key 要移除的键
   */
  remove(key) {
    if (!key) return;
    try {
      localStorage.removeItem(key);
    } catch (error) {
      console.error(`移除 localStorage 错误: ${error}`);
    }
  },

  /**
   * @description 清空 localStorage
   */
  clear() {
    try {
      localStorage.clear();
    } catch (error) {
      console.error(`清空 localStorage 错误: ${error}`);
    }
  }
};

export default storage;
